1. Field of the Invention
The present invention relates to an on-demand communication system consisting of a plurality of clients and servers connected via a network.
2. Description of the Related Art
Due to the recent development of communication networks and digital data compression techniques, new technology are getting commercially available, One example is digital cable television system in which a video server and each client in individual household are connected via a network and specific programs demanded by each client are provided. Another example is an interactive service system in which a satellite digital broadcast and telephone lines are used.
FIG. 1 shows construction of the conventional on-demand communication system comprising clients 101, 102, 103, . . . , video server 120, and network 130 connecting each client, and video server 120.
Client 101 comprises external input interface unit 111, client control unit 112, reproduction schedule table storage unit 113, clock unit 114, client I/O interface unit 115, and output decoder 116. Other clients have the same construction.
Server 120 comprises data stream storage unit 121, server I/O interface unit 122, input queue buffer unit 123, server control unit 124, job schedule storage unit 125, and data stream output unit 126.
Network 130 comprises a heavy circuit for transmitting data streams from server 120 to each client end a thin line for transmitting control information from each client to server 120.
In this on-demand communication system, communication from client 101 to server 120 is carried out in the following way. A transmission request is transmitted from client I/O interface unit 115 to server I/O interface unit 122 via network 130 such as telephone lines. It is stored in input queue buffer unit 123 and read by server control unit 124. On the other hand, communication from server 120 to client 101 is carried out in the following way. A data stream is transmitted from server I/O interface unit 122 and processed by client control unit 112. It takes three to five seconds as the processing time of the communication from client 101 to server 120, which is longer than the other way around.
In an on-demand communication system thus constructed, in order to obtain a multi-media title of the desired date stream from server 120, a viewer transmits a request of the multimedia title information from remote controller 141 to external input interface unit 111 in client 101. Next, client 101 transmits the request to server 120 via network 130, obtains the information from server 120, and stores the information in reproduction schedule table in reproduction schedule table storage unit 113. FIG. 2 shows an example of a reproduction schedule table of multi-media tittles. In this reproduction schedule table 201, reproduction video name 202, reproduction start point 203, and reproduction end point 204 are stored chronologically with reproduction start time 205 of the first video data being "00:00:00" (hours: minutes: seconds).
In order to reproduce a data stream according to reproduction schedule table 201, a viewer transmits a request to select reproduction schedule table 201 from remote controller 141 to client 101. Client control unit 112 receives this request via external input interface unit 111, refers to reproduction schedule table 201 stored in reproduction schedule table storage unit 113, and instructs client I/O interface unit 115 to transmit a transmission request of the data streams of "Video A" and "Video B" which are placed together in a chronological order (there is no time difference between reproduction end point 204 and reproduction start point of the next video). On receiving the instruction, client I/O interface unit 115 transmits the transmission request of "Video A" and "video B" to server I/O interface unit 122 via network 130.
In server 120, I/O interface unit 122 stores the transmission request of "Video A" and "video B" in input queue buffer unit 123 along with the client name. Server control unit 124 reads the transmission request of client 101 in input queue buffer unit 123, posts "Video A" and the client name to data stream output unit 126, and then, stores "Video B" and the client name in job schedule storage unit 125. Data stream output unit 126 locates the start of the data stream of "Video A" from data stream storage unit 121 and outputs it to server I/O interface unit 122 along with the client name. Server I/O interface unit 122 transmits the data stream of "Video A" to client 101 which has transmitted the transmission request via network 130, After completing transmission of the data stream of "Video A", data Stream transmission unit 121 posts the client name to server control unit 124. Server control unit 124 reads "Video B" stored in job schedule storage unit 125 along with the client name, and posts them to data stream output unit 126. After that, data stream output unit 126 locates the start of the data stream of "Video B" from data stream storage unit and transmits it to server I/O interface unit 122 along with the client name. Next, server I/O interface unit 122 transmits the data stream of "Video B" to client 101.
In client 101, on receiving the notification of the data stream of "Video A" transmitted from server 120 via network 130, external input interface unit 115 posts it to output decoder unit 116 via client control unit 112.
By referring to the clock in clock unit 114, client control unit 112 sets "00:00:00" as a start time in order to start measuring time when output decoder unit 116 reproduces "video A" on TV monitor 142 by deciphering the data stream. When the reproduction of "Video A" is completed, time measuring is also completed. The moment at that time "00:00:30" is stored. When output decoder unit 116 reproduces "Video B" again, time measuring is resumed from "00:00:30". When the reproduction of "Video B" is completed, the time is "00:01:15". Referring to reproduction schedule table 201 in reproduction schedule storage unit 113, client control unit 112 reads that "Video C" should be reproduced in 15-second null time after the reproduction of "Video B" is completed. When the time is "00:01:30", client control unit 112 instructs client I/O interface unit 115 to transmit transmission request of the data stream of "Video C". The transmission request from client I/O interface unit 115 is stored in queue buffer unit 123 in server 120 and read by server control unit 124. The date stream of "Video C" is transmitted to client 101 like the case of "Video A" and "Video B".
FIG. 3 is the time chart of the video reproduction which is handled in the above mentioned way. In this figure, the horizontal line at the bottom shows time. The top line shows operations of server 120, and the middle line shows those of client 101. At A.sub.0, client 101 transmits the transmission request to server 120. At A.sub.1, the start of the data stream of "Video A" is located in server 120. At A.sub.2, the transmission of the data stream to client 101 starts. At the same time, "Video A" is reproduced in client 101. At A.sub.3, the reproduction is completed, and locating the start of the data stream of "Video B" stored in server 120. At A.sub.4, transmission of the data stream starts. At A.sub.5, reproduction of "Video B" is completed in client 101. After that, there is a null time. At A.sub.6, the transmission request of "Video C" is transmitted to server 120. In server 120, the start of the data stream of "Video C" is located at A.sub.7. At A.sub.8, transmission of the data stream of "Video C" to client 101 starts. In client 101, reproduction of "Video C" starts at A.sub.8. At A.sub.9, the reproduction is completed.
In client 101, if a viewer gives instruction to stop "Video A" which is being reproduced on TV monitor 142 for a brief period of time by using remote controller 141, external input interface unit 111 receives the signal of remote controller 141 and posts it to client control unit 112. Client control unit 112 instructs output decoder unit 116 to stop the reproduction of the video for a brief period of time, and also instructs client I/O interface unit 115 to transmit a pause request of the data stream transmission to server 120. On receiving the instruction, output decoder unit 116 stops reproduction of "Video A". Client I/O interface unit 115 transmits the client name and the pause request of the data stream transmission to server I/O interface unit 122 in server 120 via network 130.
In server 120, server I/O interface unit 122 receives the pause request of the data stream transmission and the client name from client 101, and stores them in input queue buffer unit 123. On reading the pause request of the data stream transmission stored in input queue buffer unit 123, server control unit 124 instructs data stream transmission unit 126 to stop the transmission of the data stream. On receiving this instruction, data stream transmission unit 126 stops reading the data stream from data stream storage unit 121 and transmitting the data stream to server I/O interface unit 122.
When a viewer instructs "cancel pause" by using remote controller 141, external input interface unit 111 posts the instruction to client control unit 112. Client control unit 112 instructs client I/O interface unit 115 to transmit the "cancel pause" request. Client I/O interface unit 115 transmits "cancel pause" request to server I/O interface unit 122 via network 130.
On receiving the notification of the "cancel pause" request, server I/O interface unit 122 stores it and the client name in input queue buffer unit 123. On reading the "cancel pause" request stored in input queue buffer unit 123, server control unit 124 posts the request and the client name to data stream transmission unit 126, Data stream transmission unit 126 resumes reading the data stream and transmits it to server I/O interface unit 122. Server I/O interface unit 122 transmits the data stream to client 101 via network 130. On receiving the notification of the data stream, client 101 outputs it to TV monitor 142 for reproduction. FIG. 4 shows a time chart of reproducing a video whose reproduction is stopped for a brief moment and resumed after that. The same parts as FIG. 3 are given the same reference characters and numbers. At B.sub.1, a viewer designates a pause in the reproduction of "video A" by using remote controller 141 and TV monitor 142 immediately stops the reproduction. However, server 120 continues outputting the data stream until B.sub.2. At B.sub.3, the viewer designates cancelling a pause in the reproduction of video. At B.sub.5, reproduction of "Video A" is resumed on TV monitor 142.
However, the above mentioned on-demand communication system has some problems. As is apparent from FIGS. 3 and 4, it takes dT.sub.i +dT.sub.5 from A.sub.0 to A.sub.2 : dT.sub.1 is the time needed for storing and processing the transmission requests from client 101, 102, 103, . . . in queue buffer unit 123, which is three to five seconds in average; and dT.sub.a is the time needed to locate the start of the data stream of the video. In the case of video which is reproduced without a pause, dT.sub.1 exists only at the beginning when the transmission request is transmitted. In the case of a video which has a null time T.sub.0 at some mid point, dT.sub.2 which is the same time period as dT.sub.1 is needed in order to create a transmission request again. And the reproduction of the video delays by the amount of time dT.sub.2. This dT.sub.2 can be neglected when reproducing conventional video programs as they are reproduced at a dash in most cases. However, dT.sub.2 can be irritating when a different short video programs are not reproduced continuously.
As is shown in FIG. 4, when video reproduction is stopped and resumed after a brief period of time, it takes dTP for server 120 to stop transmission of the data stream. Therefore, the data stream which will be transmitted when the transmission of the data stream is resumed is ahead of the video which is outputted by TV monitor 142 by dTP. Therefore, a part of the video which is equivalent to dTP will not be reproduced. As is apparent from FIGS. 3 and 4, not only dTP, but also dTa, dTb, and dTc are irritating to viewers.